<?php
/**
 * Interface for Compression Classes
 * 
 * @author Matt Pike
 */
interface Compression{
	
	/**
	 * Get relative path to a file in the compressed directory
	 *
	 * @param string $file Name of file with extension
	 */
	public function getPathCompressed($file);
	
	/**
	 * Get relative path to a file in the uncompressed directory
	 *
	 * @param string $file Name of file with extension
	 */
	public function getPathUncompressed($file);
	
	/**
	 * Set relative path from web root to compressed directory i.e. /cache/scripts (no trailing slash)
	 *
	 * @param string $dir
	 */
	public function setCompressedDirectory($dir);
	
	/**
	 * Get relative path from web root to compressed directory i.e. /cache/scripts (no trailing slash)
	 *
	 * @return string
	 */
	public function getCompressedDirectory();
	
	/**
	 * Set relative path from web root to uncompressed directory i.e. /templates/default/scripts (no trailing slash)
	 *
	 * @param string $dir
	 */
	public function setUncompressedDirectory($dir);
	
	/**
	 * Get relative path from web root to uncompressed directory i.e. /templates/default/scripts (no trailing slash)
	 *
	 * @return string
	 */
	public function getUncompressedDirectory();

	/**
	 * Set absolute path to web root
	 *
	 * @param string $path
	 */
	public function setWebRootAbsPath($path);
	
	/**
	 * Get absolute path to web root i.e. /var/www/sites/sitename/public_html (no trailing slash)
	 *
	 * @return string $path
	 */
	public function getWebRootAbsPath();
	
	/**
	 * Return array of supported file extensions to compress i.e "js","css" etc
	 * 
	 * @return array
	 */
	public function getSupportedFileTypes();
	
	/**
	 * Get website domain 
	 *
	 * @return string
	 */
	public function getDomain();
	
}